# 1.求出每个平台总的销售业绩，并绘制出线性图，并做简单的数据分析
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
import os


def topic_1(data:pd.DataFrame):
    # 1.求出每个平台总的销售业绩，并绘制出线性图，并做简单的数据分析
    # # 自定义风格选项
    custom_style = {
        # 设置返回
        'figure.figsize': (8, 6),
        # 设置网格
        'axes.grid': True,
        # 这是标签的大小
        'axes.labelsize': 12,
        # 设置标签标题的大小
        'axes.titlesize': 14,
        # 设置你整体字体的大小
        'legend.fontsize': 12,
        # 设置x轴刻度的大小
        'xtick.labelsize': 10,
        # 设置y轴
        'ytick.labelsize': 10,
        # 设置标签的宽度的跨度
        'axes.linewidth': 1.5,
        # 设置网格宽度的跨度
        'grid.linewidth': 0.5,
    }

    # 设置自定义风格
    plt.style.use(custom_style)

    # 设置中文编码和符号的正常显示
    plt.rcParams['font.family'] = 'sans-serif'
    # 设置字体
    plt.rcParams['font.sans-serif'] = ['SimHei', 'Arial Unicode MS']
    # 设置负号显示
    plt.rcParams["axes.unicode_minus"] = False

    # 读取数据
    # 对数据进行去重处理，去空，去除杂数据
    data.drop_duplicates(inplace=True)
    # 对Platform 进行分组,按照每个Platform 的相关数据对其进行求和
    Platform_data = data.groupby(by=['Platform'])['Global_Sales'].sum()
    # 排序
    Platform_data.sort_values(inplace=True)

    # 设置图框的大小
    fig = plt.figure(figsize=(12, 8))
    # 绘图
    plt.plot(Platform_data.index,  # x轴数据
             Platform_data.values,  # y轴数据
             linestyle='-',  # 折线类型
             linewidth=2,  # 折线宽度
             color='steelblue',  # 折线颜色
             marker='o',  # 点的形状
             markersize=6,  # 点的大小
             markeredgecolor='black',  # 点的边框色
             markerfacecolor='brown')  # 点的填充色
    # 添加标题和坐标轴标签
    plt.title('求出每个平台总的销售业绩，并绘制出线性图，并做简单的数据分析')
    plt.xlabel('平台')
    plt.ylabel('每个平台总的销售业绩')

    # 剔除图框上边界和右边界的刻度
    plt.tick_params(top='off', right='off')

    # 为了避免x轴日期刻度标签的重叠，设置x轴刻度自动展现，并且45度倾斜
    fig.autofmt_xdate(rotation=45, ha='center')

    # 显示图形
    plt.show()
    # 保存文件
    plt.savefig('static/img/topic_1.jpg')
    plt.close('all')